Skip to content

Conversation

mhl-b
Copy link
Contributor

@mhl-b mhl-b commented Mar 20, 2025

This PR integrates GCP blob store with APM telemetry. REST API stats measures only requests count for InsertObject, GetObject, ListObjects. But telemetry tracks wider range of operations and their outcomes. Requests and operations are tracked separately. There are 3 counters for request exceptions: exception, throttle, and rangeNotSatisfied. The exception metric includes all failures including throttles and ranges.

Currently, it's not possible to capture number of throttles/exceptions per single operation(a group of requests). So histograms are updated on request basis: exceptionHistogram, throttleHistogram.

Also it's not possible to measure time per request and update httpRequestTimeInMillisHistogram. So these values will be 0. With future improvements in GCP SDK we might be able to use provided OpenTelemetry to capture missing metrics.

@mhl-b mhl-b requested a review from nicktindall March 20, 2025 04:55
@mhl-b mhl-b added >enhancement :Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs Team:Distributed Coordination Meta label for Distributed Coordination team labels Mar 21, 2025
@mhl-b mhl-b marked this pull request as ready for review March 21, 2025 20:36
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-distributed-coordination (Team:Distributed Coordination)

@elasticsearchmachine
Copy link
Collaborator

Hi @mhl-b, I've created a changelog YAML for you.

* @param failIfAlreadyExists whether to throw a FileAlreadyExistsException if the given blob already exists
*/
void writeBlob(OperationPurpose purpose, String blobName, BytesReference bytes, boolean failIfAlreadyExists) throws IOException {
void writeFullBlob(OperationPurpose purpose, String blobName, BytesReference bytes, boolean failIfAlreadyExists) throws IOException {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overloaded writeBlob is hard to read, especially when we call one from the inside of another.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

:Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs >enhancement Team:Distributed Coordination Meta label for Distributed Coordination team v9.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants